#!/usr/bin/python
# -*- coding:utf-8 -*-
# @author  : micah
# @time    :  
# @function: 
# @version :


from collections.abc import Iterable, Iterator


class Test:
    def __init__(self):
        self.list_obj = list()

    # 如果一个类实现了__iter__方法，则这个类是一个可迭代对象
    def __iter__(self):
        pass

    # 因为在循环中需要调用next方法，所以我们需要手动实现__next__方法
    def __next__(self):
        pass

    def add(self, item):
        self.list_obj.append(item)


test = Test()
test.add(1)
test.add(2)
test.add(3)

print(isinstance(test, Iterable))
print(isinstance(test, Iterator))

# 一个迭代对象是否能在for循环中运行
# 一个可迭代对象不一定是一个迭代器，但是for循环需要将一个迭代器对象转为迭代器去调用next方法获取元素

for item in test:
    print(item)
